The present invention is in the field of audio coding, especially in the field of context based entropy coding.
Traditional audio coding concepts include an entropy coding scheme for redundancy reduction. Typically, entropy coding is applied to quantized spectral coefficients for frequency domain based coding schemes or quantized time domain samples for time domain based coding schemes. These entropy coding schemes typically make use of transmitting a codeword in combination with an according codebook index, which enables a decoder to look up a certain codebook page for decoding an encoded information word corresponding to the transmitted codeword on the said page. In some coding concepts, transmission of the codebook index may nevertheless not be mandatory, for example, for cases in which the codebook index can be determined from the context of a symbol, which is, for example, entropy coded as described in Meine, Edler, “Improved Quantization and Lossless Coding for Subband Audio Coding” and Meine, “Vektorquantisierung and kontextabhängige arithmetische Codierung für MPEG-4 AAC”, Dissertation, Gottfried Wilhelm Leibnitz Universität Hannover, Hanover 2007.
For frequency or spectral domain based audio coding, a context may describe symbols or statistical properties, as for example, quantized spectral coefficients, which are prior in time and/or frequency. In some of the conventional concepts, these symbols may be available at both, the encoder and the decoder side, and based on these symbols, a codebook or context can be determined synchronously at both encoder and decoder sides.
FIG. 9 shall illustrate an example of a context and its dependencies. FIG. 9 shows a time frequency plane, in which a number of symbols are indicated. Symbol Sn,m denotes a symbol at time n and frequency m. FIG. 9 illustrates that for encoding a certain symbol, its context is used to determine the associated codebook. For example, for a symbol Sn0,m0 this would be all symbols with
n<n0 and any m, or with n=n0 and m<m0.
In practical implementations, a context is not infinite, but limited. In the example depicted in FIG. 9, the context for symbol S0,3 could, for example, be
S0,2, S0,1, S−1,5, S−1,4, S−1,3, S−1,2, S−1,1, S−2,5, S−2,4, S−2,3, S−2,2, S−2,1.
For frequency based audio coding, time variant, signal adaptive filter banks or so-called block transformations may be used, as for example, described in Edler, B., “Codierung von Audiosignalen mit überlappender Transformation and adaptiven Fensterfunktionen”, Frequenz, Ausgabe 43, September 1989.
In other words, frequency/time resolution changes may occur over time within these audio coding concepts. A popular audio coding concept is the so-called AAC (AAC=Advanced Audio Coding), in case of which two block lengths are used, for which are coded for example either 128 or 1024 transformed coefficients representing the frequency components of 256 or 2048 windowed time domain samples respectively.
These concepts allow the switching between the different resolutions, depending on certain signal characteristics, as for example occurrence of transients or tonality or whether the signal is music-like or speech-like, etc. In case of switching between different time/frequency resolutions, as for example, between different AAC block types, the context is not consistent. Conventional concepts or state-of-the-art implementations may utilize resetting of the context, i.e., it is basically switched to a state, in which no context is available, in which a context is built up from scratch. This approach may work out sufficiently well, for example in AAC, since it guarantees at least two long blocks or eight short blocks in a row, where it can be assumed that switching occurs only seldom.
However, conventional concepts resetting the context are in general sub-optimal in terms of coding efficiency, since each time the context is reset, the subsequent codebook selection is based on values, which are designed as fall-back solutions for unknown context. Generally, sub-optimal codebooks are then selected. The drawback in coding efficiency may be negligible for cases in which the switching occurs only seldom. For a scenario, however, with more frequent switching, this leads to a significant loss in coding efficiency. On the one hand, a more frequent switching is strongly desired for lower data rates/sampling rates, since especially here, an optimum adaptation of the transform length to the signal characteristic is desired. On the other hand, coding efficiency decreases significantly when switching frequently.